package com.chianghao.qyt.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chianghao.qyt.common.entity.BaseTenant;
import com.chianghao.qyt.common.entity.BaseTenantAccount;

import java.util.Map;
import java.util.Set;

public interface TenantService {

    /**
     * 分页查询分页
     * @param pageIndex 页码
     * @param pageSize  每页大小
     * @param code      商户编号
     * @param name      商户米高程
     * @return 返回商户的分页信息
     */
    IPage<BaseTenant> page(Integer pageIndex, Integer pageSize, String code, String name);

    /**
     * 创建商户
     * @param name   名称
     * @param remark 备注
     */
    void add(String name,String mobilePhone, String remark);

    /**
     * 修改
     * @param id    主键
     * @param name  名称
     * @param mobilePhone 手机
     * @param remark 备注
     */
    void modify(Long id, String name, String mobilePhone,String remark);

    /**
     * 设置状态
     * @param tenantId  商户ID
     * @param state     状态 false 无效 不可用/true 有效
     */
    void setState(Long tenantId, Boolean state);

    /**
     * 查询商户的默认账号
     * @param tenantIds 商户ID
     * @return 返回商户对应的默认账号
     */
    Map<Long, BaseTenantAccount> queryTenantDefaultAccountMap(Set<Long> tenantIds);

    /**
     * 设置商户默认账号的密码
     * @param tenantAccountId 商户默认账户的ID
     * @param password  密码
     */
    void resetAccountPassword(Long tenantAccountId, String password);
}
